package org.jpoligonos.persistencia;

import org.jpoligonos.beans.Proyecto;
import org.jpoligonos.beans.*;
import org.jpoligonos.controller.*;
import java.io.Serializable;
import java.util.List;
import java.util.ArrayList;
import java.util.*;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
import java.util.Map;
import java.util.Iterator;
import java.util.HashMap;
import java.util.Map;
 import javax.sql.DataSource;
import org.jpoligonos.generales.Mensajeria;
import org.jpoligonos.generales.Sesion;


/**
*
* @author
*/

public class ProyectoPersistencia implements Serializable {
private static final long serialVersionUID = 1L;
public static Exception excepcion;
public static boolean esMensaje = false;
public static Connection con = null;
public static java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/jpoligonos/properties/mensajes");

public ProyectoPersistencia(){
         esMensaje =false;
}


/**
*
* Insert()
*/

public static boolean Insert (Proyecto proyecto ) {
  excepcion = null;
  try {
      esMensaje =false;
   
   
   
     if (!Connect()) {
         return false;
      }
      PreparedStatement pinsert = null;
      String sql = "insert into proyecto(idproyecto,proyecto,provincia,distrito,corregimiento,calculado,fecha,revisado)  values(?,?,?,?,?,?,?,?)";
      pinsert = con.prepareStatement(sql);
              pinsert.setInt(1,proyecto.getIdproyecto());
        pinsert.setString(2,proyecto.getProyecto());
        pinsert.setString(3,proyecto.getProvincia());
        pinsert.setString(4,proyecto.getDistrito());
        pinsert.setString(5,proyecto.getCorregimiento());
        pinsert.setString(6,proyecto.getCalculado());
        pinsert.setString(7,proyecto.getFecha());
        pinsert.setString(8,proyecto.getRevisado());
      int filas= pinsert.executeUpdate();
      pinsert.close();
      con.close();
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
 }


/**
*
* Update()
*/

public static boolean Update(Proyecto proyecto ) {
  excepcion = null;
  try {
      esMensaje =false;
     if (!Connect()) {
         return false;
      }
      PreparedStatement pupdate = null;
      String sql = "update proyecto set  idproyecto=?, proyecto=?, provincia=?, distrito=?, corregimiento=?, calculado=?, fecha=?, revisado=?  where  idproyecto ='"+proyecto.getIdproyecto()+"'  ";
      pupdate= con.prepareStatement(sql);
      pupdate.setInt(1,proyecto.getIdproyecto());
pupdate.setString(2,proyecto.getProyecto());
pupdate.setString(3,proyecto.getProvincia());
pupdate.setString(4,proyecto.getDistrito());
pupdate.setString(5,proyecto.getCorregimiento());
pupdate.setString(6,proyecto.getCalculado());
pupdate.setString(7,proyecto.getFecha());
pupdate.setString(8,proyecto.getRevisado());
      int filas= pupdate.executeUpdate();
      pupdate.close();
      con.close();
      if (filas <= 0){
          excepcion=new Exception(bundle.getString("msg.noupdate"));
          esMensaje =true;
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* Update()
*/

public static boolean Update(String sqlupdate ) {
  excepcion = null;
  try {
      esMensaje =false;
     if (!Connect()) {
         return false;
      }
      PreparedStatement pupdate = null;
      String sql = "update  proyecto set " + sqlupdate +"";
      pupdate= con.prepareStatement(sql);
      int filas= pupdate.executeUpdate();
      pupdate.close();
      con.close();
      if (filas <= 0){
          excepcion=new Exception(bundle.getString("msg.noupdate"));
          esMensaje =true;
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* UpdatePrimaryKey()
*/

public static boolean UpdatePrimaryKey(Proyecto proyecto_old , Proyecto proyecto) {
  excepcion = null;
  try {
      esMensaje =false;
     if (!Connect()) {
         return false;
      }
      PreparedStatement pupdate = null;
      String sql = "update proyecto set  idproyecto=?  where  idproyecto ='"+proyecto_old.getIdproyecto()+"'  ";
      pupdate= con.prepareStatement(sql);
      pupdate.setInt(1,proyecto.getIdproyecto());
      int filas= pupdate.executeUpdate();
      pupdate.close();
      con.close();
      if (filas <= 0){
          excepcion=new Exception(bundle.getString("msg.noupdate"));
          esMensaje =true;
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* Delete()
*/

public static boolean Delete(Proyecto proyecto ) {
  excepcion = null;
  try {
      esMensaje =false;
     if (!Connect()) {
         return false;
      }
      PreparedStatement pdelete = null;
      String sql = "delete from proyecto  where  idproyecto = ?  ";
      pdelete= con.prepareStatement(sql);
      pdelete.setInt(1,proyecto.getIdproyecto());
      int filas= pdelete.executeUpdate();
      pdelete.close();
      con.close();
      if (filas <= 0){
          excepcion=new Exception(bundle.getString("msg.nodelete"));
          esMensaje =true;
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* Delete()
*/

public static boolean Delete(String sqldelete ) {
  excepcion = null;
  try {
      esMensaje =false;
     if (!Connect()) {
         return false;
      }
      PreparedStatement pdelete = null;
      String sql = "delete from proyecto where " + sqldelete +"";
      pdelete= con.prepareStatement(sql);
      int filas= pdelete.executeUpdate();
      pdelete.close();
      con.close();
      if (filas <= 0){
          excepcion=new Exception(bundle.getString("msg.nodelete"));
          esMensaje =true;
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* DeleteAll()
*/

public static boolean DeleteAll() {
  excepcion = null;
  try {
      esMensaje =false;
     if (!Connect()) {
         return false;
      }
      PreparedStatement pdelete = null;
      String sql = "delete from proyecto  ";
      pdelete= con.prepareStatement(sql);
      int filas= pdelete.executeUpdate();
      pdelete.close();
      con.close();
      if (filas <= 0){
          excepcion=new Exception(bundle.getString("msg.nodeleteall"));
          esMensaje =true;
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* Exists()
*/



public static boolean Exists(Proyecto proyecto) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return false;
      }
      String sql = "select * from proyecto where idproyecto='"+proyecto.getIdproyecto()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "proyecto" +" " + bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return false;
   }
    rs.close();
    psquery.close();
    con.close();
 return true;
} catch (Exception ex) {
      excepcion = ex;
}
  return false;
}


/**
*
* findByPrimaryKey()
*/



public static Proyecto findByPrimaryKey(Proyecto proyecto) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      String sql = "select * from proyecto where idproyecto='"+proyecto.getIdproyecto()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "proyecto" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
            
            
            proyecto.setIdproyecto(rs.getInt("idproyecto"));
proyecto.setProyecto(rs.getString("proyecto"));
proyecto.setProvincia(rs.getString("provincia"));
proyecto.setDistrito(rs.getString("distrito"));
proyecto.setCorregimiento(rs.getString("corregimiento"));
proyecto.setCalculado(rs.getString("calculado"));
proyecto.setFecha(rs.getString("fecha"));
proyecto.setRevisado(rs.getString("revisado"));
    }
    rs.close();
    psquery.close();
    con.close();
 return proyecto;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByIdproyecto()
*/

public static List<Proyecto> findByIdproyecto(Proyecto proyecto,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Proyecto> list = new ArrayList<>();
      String sql = "select * from proyecto where idproyecto='"+proyecto.getIdproyecto()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "proyecto" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
        Proyecto proyecto2 = new Proyecto(
         rs.getInt("idproyecto"),rs.getString("proyecto"),rs.getString("provincia"),rs.getString("distrito"),rs.getString("corregimiento"),rs.getString("calculado"),rs.getString("fecha"),rs.getString("revisado"));
            
            
       list.add(proyecto2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByProyecto()
*/

public static List<Proyecto> findByProyecto(Proyecto proyecto,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Proyecto> list = new ArrayList<>();
      String sql = "select * from proyecto where proyecto='"+proyecto.getProyecto()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "proyecto" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
        Proyecto proyecto2 = new Proyecto(
         rs.getInt("idproyecto"),rs.getString("proyecto"),rs.getString("provincia"),rs.getString("distrito"),rs.getString("corregimiento"),rs.getString("calculado"),rs.getString("fecha"),rs.getString("revisado"));
            
            
       list.add(proyecto2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByProvincia()
*/

public static List<Proyecto> findByProvincia(Proyecto proyecto,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Proyecto> list = new ArrayList<>();
      String sql = "select * from proyecto where provincia='"+proyecto.getProvincia()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "proyecto" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
        Proyecto proyecto2 = new Proyecto(
         rs.getInt("idproyecto"),rs.getString("proyecto"),rs.getString("provincia"),rs.getString("distrito"),rs.getString("corregimiento"),rs.getString("calculado"),rs.getString("fecha"),rs.getString("revisado"));
            
            
       list.add(proyecto2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByDistrito()
*/

public static List<Proyecto> findByDistrito(Proyecto proyecto,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Proyecto> list = new ArrayList<>();
      String sql = "select * from proyecto where distrito='"+proyecto.getDistrito()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "proyecto" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
        Proyecto proyecto2 = new Proyecto(
         rs.getInt("idproyecto"),rs.getString("proyecto"),rs.getString("provincia"),rs.getString("distrito"),rs.getString("corregimiento"),rs.getString("calculado"),rs.getString("fecha"),rs.getString("revisado"));
            
            
       list.add(proyecto2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByCorregimiento()
*/

public static List<Proyecto> findByCorregimiento(Proyecto proyecto,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Proyecto> list = new ArrayList<>();
      String sql = "select * from proyecto where corregimiento='"+proyecto.getCorregimiento()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "proyecto" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
        Proyecto proyecto2 = new Proyecto(
         rs.getInt("idproyecto"),rs.getString("proyecto"),rs.getString("provincia"),rs.getString("distrito"),rs.getString("corregimiento"),rs.getString("calculado"),rs.getString("fecha"),rs.getString("revisado"));
            
            
       list.add(proyecto2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByCalculado()
*/

public static List<Proyecto> findByCalculado(Proyecto proyecto,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Proyecto> list = new ArrayList<>();
      String sql = "select * from proyecto where calculado='"+proyecto.getCalculado()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "proyecto" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
        Proyecto proyecto2 = new Proyecto(
         rs.getInt("idproyecto"),rs.getString("proyecto"),rs.getString("provincia"),rs.getString("distrito"),rs.getString("corregimiento"),rs.getString("calculado"),rs.getString("fecha"),rs.getString("revisado"));
            
            
       list.add(proyecto2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByFecha()
*/

public static List<Proyecto> findByFecha(Proyecto proyecto,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Proyecto> list = new ArrayList<>();
      String sql = "select * from proyecto where fecha='"+proyecto.getFecha()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "proyecto" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
        Proyecto proyecto2 = new Proyecto(
         rs.getInt("idproyecto"),rs.getString("proyecto"),rs.getString("provincia"),rs.getString("distrito"),rs.getString("corregimiento"),rs.getString("calculado"),rs.getString("fecha"),rs.getString("revisado"));
            
            
       list.add(proyecto2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByRevisado()
*/

public static List<Proyecto> findByRevisado(Proyecto proyecto,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Proyecto> list = new ArrayList<>();
      String sql = "select * from proyecto where revisado='"+proyecto.getRevisado()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "proyecto" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
        Proyecto proyecto2 = new Proyecto(
         rs.getInt("idproyecto"),rs.getString("proyecto"),rs.getString("provincia"),rs.getString("distrito"),rs.getString("corregimiento"),rs.getString("calculado"),rs.getString("fecha"),rs.getString("revisado"));
            
            
       list.add(proyecto2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* locateByParameters()
*/

public static List<Proyecto> locateByParameters(Map parametros,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Proyecto> list = new ArrayList<>();
  String sql = "select * from proyecto";
  if (parametros != null) {
      Iterator it = parametros.entrySet().iterator();
      StringBuilder sb = new StringBuilder("");
      int i = 0;
      while (it.hasNext()) {
          if (i != 0){
            sb.append(" and ");
         }
         i++;
        Map.Entry e = (Map.Entry) it.next();
        sb.append(e.getKey() +"= '"+  e.getValue()+"'");
      }
      if (!sb.toString().equals("")){
         sql = sql + " where " + sb.toString();
      }
   }
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "proyecto" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
        Proyecto proyecto2 = new Proyecto(
         rs.getInt("idproyecto"),rs.getString("proyecto"),rs.getString("provincia"),rs.getString("distrito"),rs.getString("corregimiento"),rs.getString("calculado"),rs.getString("fecha"),rs.getString("revisado"));
            
            
       list.add(proyecto2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* Double Func(String funcion, String campo)
*/



public static Double Func(String funcion, String campo) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return 0.0;
      }
      String sql = "select "+funcion+"("+campo+") as contador from proyecto";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "proyecto" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return 0.0;
   }
    Double tmp =0.0;
   rs.beforeFirst();
   while (rs.next()) {
    tmp =  rs.getDouble("contador");
    }
    rs.close();
    psquery.close();
    con.close();
 return tmp;
} catch (Exception ex) {
      excepcion = ex;
}
  return 0.0;
}


/**
*
* Double Func(String funcion, String campo,String where)
*/



public static Double Func(String funcion, String campo, String where) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return 0.0;
      }
      String sql = "select "+funcion+"("+campo+") as contador from proyecto where "+where +" ";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "proyecto" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return 0.0;
   }
    Double tmp =0.0;
   rs.beforeFirst();
   while (rs.next()) {
    tmp =  rs.getDouble("contador");
    }
    rs.close();
    psquery.close();
    con.close();
 return tmp;
} catch (Exception ex) {
      excepcion = ex;
}
  return 0.0;
}


/**
*
* Count()
*/



public static Integer Count() {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return 0;
      }
      String sql = "select count(*) as contador from proyecto";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "proyecto" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return 0;
   }
   rs.beforeFirst();
   while (rs.next()) {
    x =  rs.getInt("contador");
    }
    rs.close();
    psquery.close();
    con.close();
 return x;
} catch (Exception ex) {
      excepcion = ex;
}
  return 0;
}


/**
*
* Contador(String sqlquery)
*/



public static Integer Count(String sqlquery) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return 0;
      }
      String sql = "select count(*) as contador from proyecto where  " + sqlquery +"";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "proyecto" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return 0;
   }
   rs.beforeFirst();
   while (rs.next()) {
    x =  rs.getInt("contador");
    }
    rs.close();
    psquery.close();
    con.close();
 return x;
} catch (Exception ex) {
      excepcion = ex;
}
  return 0;
}


/**
*
* Query()
*/

public static List<Proyecto> Query(String query,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Proyecto> list = new ArrayList<>();
  String sql = "select * from proyecto where " + query +"";
  if (query == null || query.equals("")) {
  return null;
   }
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "proyecto" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
        Proyecto proyecto2 = new Proyecto(
         rs.getInt("idproyecto"),rs.getString("proyecto"),rs.getString("provincia"),rs.getString("distrito"),rs.getString("corregimiento"),rs.getString("calculado"),rs.getString("fecha"),rs.getString("revisado"));
            
            
       list.add(proyecto2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* getListRecords()
*/

public static List<Proyecto> getListRecords(Map parametros,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Proyecto> list = new ArrayList<>();
  String sql = "select * from proyecto";
  if (parametros != null) {
      Iterator it = parametros.entrySet().iterator();
      StringBuilder sb = new StringBuilder("");
      while (it.hasNext()) {
        Map.Entry e = (Map.Entry) it.next();
        sb.append(e.getKey() +"="+  e.getValue());
      }
      if (!sb.toString().equals("")){
         sql = sql + " where " + sb.toString();
      }
   }
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "proyecto" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
       
        Proyecto proyecto2 = new Proyecto(
         rs.getInt("idproyecto"),rs.getString("proyecto"),rs.getString("provincia"),rs.getString("distrito"),rs.getString("corregimiento"),rs.getString("calculado"),rs.getString("fecha"),rs.getString("revisado"));
            
            
       list.add(proyecto2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
 }


/**
*
* Connect()
*/



public static boolean Connect() {
try {
 Sesion sesion = new Sesion();
  con = sesion.Connect();
  if (con == null){
      return false;
   }
  return true;
  } catch (Exception ex) {
Mensajeria.MensajeError(ex, "Connect()");
 }
    return false;
 }


}
